class DocumentosController < ApplicationController
  # MODULE: Documentos

  # GET /documentos
  # GET /documentos.xml
  def index
    @documentos = Documento.all
    respond_to do |format|
      format.html # index.html.erb
      format.xml  { render :xml => @documentos }
    end
  end

  # GET /documentos/1
  # GET /documentos/1.xml
  def show
    @documento = Documento.find(params[:id])
    respond_to do |format|
      format.html
      format.js {render :layout => false}
      format.xml{render :xml => @documento}
    end
  end

  # GET /documentos/new
  # GET /documentos/new.xml
  def new
    @documento = Documento.new
    @documento.usuario_id = params[:usuario_id]
    respond_to do |format|
      format.html # new.html.erb
      format.js {render :layout => false}
      format.xml  { render :xml => @documento }
    end
  end

  # GET /documentos/1/edit
  def edit
    @documento = Documento.find(params[:id])
    respond_to do |format|
      format.html # new.html.erb
      format.js {render :layout => false}
      format.xml  { render :xml => @documento }
    end
  end

  # POST /documentos
  # POST /documentos.xml
  def create
    @documento = Documento.new(params[:documento])
    
    respond_to do |format|
      if @documento.save
        format.html {
          responds_to_parent do
            actualizar_view
          end
        }
        format.js do
          responds_to_parent do
            actualizar_view
          end
        end
      else
        format.html { render :action => "new" }
        format.xml  { render :xml => @documento.errors, :status => :unprocessable_entity }
      end
    end
  end

  # PUT /documentos/1
  # PUT /documentos/1.xml
  def update
    @documento = Documento.find(params[:id])

    respond_to do |format|
      if @documento.update_attributes(params[:documento])
        format.html {
          flash[:notice] = 'Documento actualizado correctamente.'
          redirect_to(@documento.usuario)
        }
        format.xml  { head :ok }
        format.js {actualizar_view}
      else
        format.html { render :action => "edit" }
        format.xml  { render :xml => @documento.errors, :status => :unprocessable_entity }
      end
    end
  end

  # DELETE /documentos/1
  # DELETE /documentos/1.xml
  def destroy
    @documento = Documento.find(params[:id])
    @usuario= @documento.usuario
    @documento.destroy
    respond_to do |format|
      # format.html { actualizar_view}
      format.js do
        actualizar_view
      end
    end
  end

  private
  def actualizar_view
    @usuario||=@documento.usuario
    @documentos_sin_carpeta = @usuario.documentos.sin_carpeta 
    @action_name="edit"
    render :update do |page|
      page << "$.colorbox.close()"
      page.replace_html "documentos", :file => "documentos/index"
      page.visual_effect(:highlight, "tr-documento-#{@documento.id}", :duration=>2.5)
      page << "makeColorBox()"
    end
  end
end
